package com.gx.smart.building.ui.home.viewmodel

import android.app.Application
import androidx.lifecycle.MutableLiveData
import com.blankj.utilcode.util.ToastUtils
import com.gx.smart.base.BaseViewModel
import com.gx.smart.building.WorkbenchApiService
import com.gx.smart.lib.http.api.asynctask.CallBack
import com.huishi.gx.ib.grpc.lib.ib.workbench.v1.IndexTotalResp

class HomeViewModel(application: Application) : BaseViewModel(application) {
    //维修工单（未处理，一般指待接单）数量
    val workOrderQuantity: MutableLiveData<Long> = MutableLiveData()

    //巡检计划（未完成）数量
    val planTaskQuantity1: MutableLiveData<Long> = MutableLiveData()

    //保养计划（未完成）数量
    val planTaskQuantity2: MutableLiveData<Long> = MutableLiveData()

    //全部告警（未处理）数量
    val msgAlarmQuantity: MutableLiveData<Long> = MutableLiveData()

    //我的消息（未读）数量
    val messageQuantity: MutableLiveData<Long> = MutableLiveData()

    //首页统计统计维修工单（未处理，一般指待接单），巡检计划（未完成），保养计划（未完成），全部告警（未处理），我的消息（未读）
    fun indexTotal() {
        WorkbenchApiService.getInstance().indexTotal(object : CallBack<IndexTotalResp>() {
            override fun callBack(result: IndexTotalResp?) {
                if (result == null) {
                    ToastUtils.showLong("服务器超时")
                    return
                }
                val comResp = result.comResp
                if (comResp.code == 100) {
                    //维修工单（未处理，一般指待接单）数量
                    workOrderQuantity.value = result.workOrderQuantity
                    //巡检计划（未完成）数量
                    planTaskQuantity1.value = result.planTaskQuantity1
                    //保养计划（未完成）数量
                    planTaskQuantity2.value = result.planTaskQuantity2
                    //全部告警（未处理）数量
                    msgAlarmQuantity.value = result.msgAlarmQuantity
                    //我的消息（未读）数量
                    messageQuantity.value = result.messageQuantity
                } else {
                    handleServiceException(comResp)
                }
            }

        })
    }
}